<template>
	<view>
	<form @submit="respass">
		<view class="NewPass">
			<!-- <text>新的密码</text> -->
			<text>旧的密码</text>
			<!-- <input type="password" name="input" v-model="oldPassword" /> -->
			<uni-easyinput type="password" :styles="styles" name="input" v-model="oldPassword"></uni-easyinput>
		</view>
		<!-- 确认密码 -->
		<view class="RPass">
			<!-- <text>确认密码</text> -->
			<text>新的密码</text>
			<!-- <input type="password" name="input" v-model="password" /> -->
			<!-- <input type="text" name="input" v-model="userName"/> -->
			<uni-easyinput placeholder="密码长度必须为8-16位，同时包含字母和数字" type="password" :styles="styles" name="input"
				v-model="password"></uni-easyinput>
		</view>
		<view class="rePass">
			<text>确认密码</text>
			<uni-easyinput type="password" :styles="styles" name="input" v-model="ConfirmPass"
				v-on:input="checkPass"></uni-easyinput>
		</view>
		<text style="float: right;font-size: 24rpx;color:#F75424 ;">{{tips}}</text>
		<button form-type="submit" class="sub_button">提交</button>
	</form>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				oldPassword: '',
				password: '',
				userName: '',
				ConfirmPass: '',
				tips: '',
				styles: {
					borderColor: '#FFFFFF'
				},
			}
		},
		methods: {
			checkPass() {
				if (this.password != this.ConfirmPass) {
					// console.log("密码不一致")
					this.tips = "确认新密码与新密码不一致"
				} else {
					this.tips = ''
				}
			},
			async respass() { //async 定义的函数会默认的返回一个Promise对象resolve的值
				var loginName = uni.getStorageSync('loginName')
				this.userName = loginName
			
				var reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{8,16}$/;
				if (reg.test(this.password) && this.password === this.ConfirmPass) {
					// console.log(reg.test(this.password))
					const res = await this
						.$myRequest({ //await 关键字 只能放在 async 函数内部， await关键字的作用 就是获取 Promise中返回的内容， 获取的是Promise函数中resolve或者reject的值
							url: '/api-operate/families/app/security/update-password',
							method: "post",
							data: {
								oldPassword: this.oldPassword,
								password: this.password,
								userName: this.userName
							},
						})
					// console.log(res)
					let errorMsg = res.msg
					if (res.success == true) { //如果登录成功
						// console.log("修改成功，密码")
						const res = await this
							.$myRequest({
								url: '/api-operate/families/app/security/logout'
							})
						if (res.success == true) {
							//注销后移除app保存的信息
							uni.removeStorageSync('loginName');
							uni.removeStorageSync('id');
							uni.removeStorageSync('x-auth-token');
							uni.removeStorageSync('loginAndReturnPage');
							//移除菜单权限
							uni.removeStorageSync('worker');
							uni.removeStorageSync('nodekeyArr');
							//从涂鸦注销
							const userModule = uni.requireNativePlugin("LJY-UserModule") //调用android中自定义的插件名称
							//执行涂鸦智能注销，不关乎是否注销成功
							userModule.logout();
							uni.removeTabBarBadge({
								index: 1,
							})
							uni.reLaunch({ //关闭当前页面，跳转到应用内的某个页面。
								url: '/pages/user/login/index'
							})
						}
						// uni.reLaunch({
						// 	url: '/pages/user/login/index'
						// });
					} else {
						uni.showToast({
							title: errorMsg,
							mask: true,
							duration: 2000
						});
					}
				} else {
					uni.showToast({
						title: '密码长度必须为8-16位，且必须同时包含字母和数字',
						icon: 'error',
						mask: true,
						duration: 2000
					});
				}
				// const res = await this
				// 	.$myRequest({ //await 关键字 只能放在 async 函数内部， await关键字的作用 就是获取 Promise中返回的内容， 获取的是Promise函数中resolve或者reject的值
				// 		url: '/api-portal/pw/reset/',
				// 		method: "post",
				// 		data: {
				// 			oldPassword: this.oldPassword,
				// 			password: this.password,
				// 			userName: this.userName
				// 		},
				// 	})
				// if (res.success == true) { //如果登录成功
				// 	console.log("修改成功，密码")
				// 	uni.switchTab({
				// 		url: '/pages/user/index'
				// 	});
				// } else {
				// 	uni.showToast({
				// 		title: '修改失败',
				// 		mask: true,
				// 		duration: 2000
				// 	});
				// }
			}
			
			
			// async respass() { //async 定义的函数会默认的返回一个Promise对象resolve的值
			// 	var loginName = uni.getStorageSync('loginName')
			// 	// console.log(loginName)
			// 	this.userName = loginName

			// 	const res = await this
			// 		.$myRequest({ //await 关键字 只能放在 async 函数内部， await关键字的作用 就是获取 Promise中返回的内容， 获取的是Promise函数中resolve或者reject的值
			// 			url: '/api-operate/families/app/security/update-password',
			// 			method: "post",
			// 			data: {
			// 				oldPassword: this.oldPassword,
			// 				password: this.password,
			// 				userName: this.userName
			// 			},
			// 		})
			// 	if (res.success == true) { //如果登录成功
			// 		// console.log("修改成功，密码")
			// 		uni.switchTab({
			// 			url: '/pages/user/login/index'
			// 		});
			// 	} else {
			// 		uni.showToast({
			// 			title: '修改失败',
			// 			mask: true,
			// 			duration: 2000
			// 		});
			// 	}
			// }
		}
	}
</script>

<style>
.NewPass,
	.RPass,
	.rePass {
		height: 42px;
		background-color: #FFFFFF;
		margin-top: 10px;
		padding: 0 0 0 30px;

		color: #565656;
		font-size: 13px;
		font-weight: 600;

		display: flex;
		align-items: center;
		flex-direction: row;
	}

	.NewPass text,
	.RPass text,
	.rePass text {
		width: 80px;
	}


	.NewPass input,
	.RPass input,
	.rePass input {
		color: #565656;
		font-size: 13px;
		font-weight: 600;
	}

	/* 	.RPass input {
		color: #565656;
		font-size: 13px;
		font-weight: 600;
	} */

	.sub_button {
		height: 38px;
		width: 90.6%;
		/* background-color: #109EF8; */
		color: #FFFFFF;
		line-height: 38px;
		text-align: center;
		margin: 48px auto 0 auto;
		border-radius: unset;
	}
</style>
